<?php
/**
 * 返回access——token
 * @param string $appid 
 * @param string $secret
 * @return string $accesstoken
 */
function getAccessToken($appid,$secret){

	$url="http://mcloud.kingdee.com/openauth2/api/token?grant_type=client_credential&appid=".$appid."&secret=".$secret;
	
	$json=postJson($url,array());
	
	return $json->access_token;
}
/**
 * 返回当前请求用户名
 * @param string $ticket
 * @param string $access_token
 */
function getUsername($ticket,$access_token){
	$url="http://mcloud.kingdee.com/openauth2/api/getcontext?ticket=".$ticket."&access_token=".$access_token;
	$json= postJson($url, null);
	return $json->username;
}
/**
 * 通过post请求数据
 * @param string $url 要请求的链接
 * @param array $data 要请求的数据
 * @return json
 */
function postJson($url,$data){
	$ch = curl_init();

	$ch = curl_init($url);
	curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
	curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: ' . strlen($data)));
	$data = curl_exec($ch);
	return json_decode($data);//解析获取到的json数据
}
/**
 * 将传入的数组格式化输出
 * @param array $array 要输出的数组 
 */
function P($array){
	dump($array, 1, '<pre>', 0);
}
/**
 * 浏览器友好的变量输出
 * @param mixed $var 变量
 * @param boolean $echo 是否输出 默认为True 如果为false 则返回输出字符串
 * @param string $label 标签 默认为空
 * @param boolean $strict 是否严谨 默认为true
 * @return void|string
 */
function dump($var, $echo=true, $label=null, $strict=true) {
	$label = ($label === null) ? '' : rtrim($label) . ' ';
	if (!$strict) {
		if (ini_get('html_errors')) {
			$output = print_r($var, true);
			$output = '<pre>' . $label . htmlspecialchars($output, ENT_QUOTES) . '</pre>';
		} else {
			$output = $label . print_r($var, true);
		}
	} else {
		ob_start();
		var_dump($var);
		$output = ob_get_clean();
		if (!extension_loaded('xdebug')) {
			$output = preg_replace('/\]\=\>\n(\s+)/m', '] => ', $output);
			$output = '<pre>' . $label . htmlspecialchars($output, ENT_QUOTES) . '</pre>';
		}
	}
	if ($echo) {
		echo($output);
		return null;
	}else
		return $output;
}